#ifndef FIBONACCI_PRESENTATION_IOMANAGER_HPP
#define FIBONACCI_PRESENTATION_IOMANAGER_HPP


#include <iostream>
#include <memory>

#include <Model/IFibonacciNumberCalculator.hpp>


namespace Fibonacci
{
namespace Presentation
{


class IoManager
{
public:
  IoManager(
      std::istream& is_,
      std::ostream& os_,
      std::shared_ptr<Model::IFibonacciNumberCalculator> calculator_);

  void run();

private:
  std::istream& is;
  std::ostream& os;
  std::shared_ptr<Model::IFibonacciNumberCalculator> calculator;
};


} // namespace Presentation
} // namespace Fibonacci


#endif // FIBONACCI_PRESENTATION_IOMANAGER_HPP
